#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
快速启动MES系统
"""
import os
import sys
import subprocess
import django
from django.core.management import execute_from_command_line

# 设置环境
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings_mes_basic')
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
os.chdir(BASE_DIR)

def run_command(cmd):
    """运行命令并输出结果"""
    print(f"运行: {cmd}")
    try:
        result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
        if result.returncode == 0:
            print(f"✓ 成功")
            if result.stdout:
                print(f"输出: {result.stdout}")
        else:
            print(f"✗ 失败 (返回码: {result.returncode})")
            if result.stderr:
                print(f"错误: {result.stderr}")
        return result.returncode == 0
    except Exception as e:
        print(f"✗ 异常: {e}")
        return False

def main():
    print("=== 快速启动MES系统 ===")
    print(f"当前目录: {os.getcwd()}")
    
    # 1. 检查Django环境
    print("\n步骤1: 检查Django环境")
    try:
        import django
        print(f"✓ Django版本: {django.get_version()}")
    except ImportError as e:
        print(f"✗ Django导入失败: {e}")
        return
    
    # 2. 运行数据库迁移
    print("\n步骤2: 运行数据库迁移")
    try:
        execute_from_command_line(['manage.py', 'migrate', '--settings=settings_mes_basic', '--run-syncdb'])
        print("✓ 数据库迁移完成")
    except Exception as e:
        print(f"✗ 数据库迁移失败: {e}")
    
    # 3. 创建超级用户
    print("\n步骤3: 创建超级用户")
    try:
        django.setup()
        from django.contrib.auth.models import User
        if not User.objects.filter(username='admin').exists():
            User.objects.create_superuser('admin', 'admin@example.com', 'admin123')
            print("✓ 超级用户创建成功")
        else:
            print("✓ 超级用户已存在")
    except Exception as e:
        print(f"✗ 超级用户创建失败: {e}")
    
    # 4. 启动服务器
    print("\n步骤4: 启动MES服务器")
    
    # 启动基础MES服务
    print("启动基础MES服务 (端口8004)...")
    if run_command("nohup python manage.py runserver 0.0.0.0:8004 --settings=settings_mes_basic > /tmp/mes_8004.log 2>&1 &"):
        print("✓ 基础MES服务启动成功")
    
    # 启动完整MES服务
    print("启动完整MES服务 (端口8005)...")
    if run_command("nohup python manage.py runserver 0.0.0.0:8005 --settings=settings_full_mes > /tmp/mes_8005.log 2>&1 &"):
        print("✓ 完整MES服务启动成功")
    
    # 启动Django管理服务
    print("启动Django管理服务 (端口8006)...")
    if run_command("nohup python manage.py runserver 0.0.0.0:8006 --settings=settings_django_with_mes > /tmp/mes_8006.log 2>&1 &"):
        print("✓ Django管理服务启动成功")
    
    print("\n=== 服务启动完成 ===")
    print("基础MES服务: http://175.27.138.86:8004/admin/")
    print("完整MES服务: http://175.27.138.86:8005/admin/")
    print("Django管理: http://175.27.138.86:8006/admin/")
    print("用户名: admin")
    print("密码: admin123")
    print("\n查看日志:")
    print("tail -f /tmp/mes_8004.log")
    print("tail -f /tmp/mes_8005.log")
    print("tail -f /tmp/mes_8006.log")
    
    # 检查服务状态
    print("\n检查服务状态:")
    run_command("ps aux | grep 'python manage.py runserver'")

if __name__ == '__main__':
    main() 